<?php
  class FuncoesFacade{
      
      
      public function __construct(){
                $this->session = new SessionController();
      }
      #audio player
      public function plugin_audio_player($url_media,$width,$height,$url_base){
          
          $css_height = ($height == 0) ? "30" : $height;
          $css_width = ($width == 0) ? "230" : $width;
          
          if($url_media):
              $var =  '<script src="'.$url_base.'/plugins/audio_player/audio-player.js"></script>';
              $var .= '<object type="application/x-shockwave-flash" data="'.$url_base.'/plugins/audio_player/player.swf" id="audioplayer1" height="'.$css_height.'" width="'.$css_width.'">';
              $var .= '<param name="movie" value="'.$url_base.'/plugins/audio_player/player.swf">'; 
              $var .= '<param name="FlashVars" value="playerID=audioplayer&soundFile='.$url_media.'">'; 
              $var .= '<param name="quality" value="high">';
              $var .= '<param name="menu" value="false">'; 
              $var .= '<param name="wmode" value="transparent">'; 
              $var .= '</object>';
          else:
              $var = "URL_MEDIA";
          endif;
          
          return $var;

      }
      
      # Editor de Textos
      public function tinymce($url_base){
          $var = '<script type="text/javascript" src="'.$url_base.'tinymce/jscripts/tiny_mce/tiny_mce.js"></script>'."\n";
          $var .= '<script type="text/javascript">'."\n";
          $var .='tinyMCE.init({'."\n";
          $var .=''."\n";
          $var .='mode : "textareas",'."\n";
          $var .='theme : "advanced",'."\n";
          $var .='plugins:"safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager",'."\n";
          $var .=''."\n";
          $var .='theme_advanced_buttons1 : ",bold,italic,underline,strikethrough,|,undo,redo,|,link,unlink,removeformat,cleanup,code",'."\n";
          $var .='theme_advanced_buttons2 : "",'."\n";
          $var .='theme_advanced_buttons3 : "",'."\n";
          $var .='theme_advanced_buttons4 : "",'."\n";
          $var .='theme_advanced_toolbar_location : "top",'."\n";
          $var .='theme_advanced_toolbar_align : "left",'."\n";
          $var .='theme_advanced_statusbar_location : "bottom",'."\n";
          $var .='theme_advanced_resizing : true,'."\n";
          $var .='forced_root_block : false,'."\n";
          $var .='force_p_newlines : false,'."\n";
          $var .='paste_text_use_dialog : true,'."\n";
          $var .='remove_linebreaks : false,'."\n";
          $var .='force_br_newlines : true,'."\n";
          $var .=''."\n";
          $var .=''."\n";
          $var .=''."\n";
          $var .='template_external_list_url : "'.$url_base.'tinymce/examples/js/template_list.js",'."\n";
          $var .='external_link_list_url : "'.$url_base.'tinymce/examples/js/link_list.js",'."\n";
          $var .='external_image_list_url : "'.$url_base.'tinymce/examples/js/image_list.js",'."\n";
          $var .='media_external_list_url : "'.$url_base.'tinymce/examples/js/media_list.js",'."\n";
          $var .=''."\n";
          $var .='template_replace_values : {'."\n";
          $var .='username : "Some User",'."\n";
          $var .='staffid : "991234"'."\n";
          $var .='}'."\n";
          $var .='});'."\n";
          $var .="</script>\n";
          
          return $var;
          
          
      }
      
      #checa se o usuários esta autenticado no site
      public function check_point_usuario(){
        $usuario_session_pk = $this->session->resgata_session("trix_auth_pk");
        $usuario_session_email = $this->session->resgata_session("trix_auth_email");
        $usuario_checkpoint = $this->session->resgata_session("trix_check");
        
        #checkpoint
        $checkpoint = md5("trix_hotsite".$usuario_session_email);
        if( ($checkpoint == $usuario_checkpoint) && (isset($usuario_session_pk)) && ( $usuario_session_pk != 0) ):
            return true;
        else:
            return false;
        endif;
      } 
      
      #upload de imagem com retorno do nome da imagem
      public function upload_imagem($_FILES , $form_img_nome , $diretorio , $del_img_nome, $tipo){
          
            if($del_img_nome):
               unlink("$diretorio/".$del_img_nome);
            endif;
            
            if($_FILES["$form_img_nome"]['name']):
                
                /* verificação de arquivo*/
                $arquivo = isset($_FILES["$form_img_nome"]) ? $_FILES["$form_img_nome"] : FALSE;
                if($tipo == 'img'):
                    preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
                else:
                    preg_match("/\.(mp3|wma|aac){1}$/i", $arquivo["name"], $ext);
                endif;
                
                /* concatena o tempo com o nome da imagem */
                $imagem_nome = md5(uniqid(time())) . "." . $ext[1];
                $imagem_dir = $diretorio ."/". $imagem_nome;
                
                /* mover para a pasta selecionada */
                copy($_FILES["$form_img_nome"]["tmp_name"], $imagem_dir);
                
            endif;
            
            return $imagem_nome;
            
      }
      
      #cria a string de sql para insert e faz upload da imagem se houver uma
      public function create_sql_insert_bd($bd_nome_table, Array $dados ){
        
        foreach ($dados as $indice => $val){
            if($indice == "data_exibicao"):
                $campos[] = $this->data_to_banco($indice);
            else:
                $campos[] = $indice;
            endif;
            
            $valores[] = $this->decode_utf8($val);
        }

        # obtem os valores 
        $campos  = implode(", ", $campos);
        $valores = "'".implode("','", $valores)."'";
        
        $query = "INSERT INTO `{$bd_nome_table}` ({$campos}) VALUES ({$valores});";    
        return $query;                           
    }
      
      # cria a string sql para upload e faz update de imagem se houver uma
      public function create_sql_update_bd($bd_nome_table, Array $campos ){
        $this->campos = $campos;

        $where  = NULL;
        $update = NULL;

        foreach($this->campos as $item => $value ):
            if ($item == 'id' ):
                $val = $this->decode_utf8($value);
                #$val = $value;
                $where .= "$item='$val' AND ";
            else:
                if($item == 'data_exibicao'):
                    $vals = $this->data_to_banco($value);
                
                elseif($item == 'pagina'):
                    $vals = "";
                    
                elseif(($item == 'informacoes' ) || ($item == 'texto' ) ):
                    $vals = addslashes(html_entity_decode($value));
                    #$vals = $this->decode_utf8($rs);

                else:
                    $vals = $this->decode_utf8($value);
                    #$vals = $value;
                endif;
                
                $update .= "$item='$vals', ";

            endif;
        endforeach;
        
        $where  = rtrim($where, ' AND ');
        $update = rtrim($update, ', ');

        #remove o post "pagina"
        $valor = explode("pagina='',",$update);
        $variavel = $valor[1];

        $update_sql = $variavel;    
        
        $query = "UPDATE ".$bd_nome_table. " SET $update_sql WHERE $where ";

        return $query;

    
    }
      
      # data para banco de dados
      public function data_to_banco($data){
            $dia = substr(($data),0,2);
            $mes = substr(($data),3,2);
            $ano = substr(($data),6,4);
            $hora = substr(($data),11,8);
            $dataAlterada = $ano."-".$mes."-".$dia." ".$hora;
            
            return $dataAlterada;
        }
      
      # encode utf8
      public function encode_utf8($value){
          return addslashes(utf8_encode(trim($value)));
      }
      
      public function decode_utf8($value){
          return addslashes(utf8_decode(trim($value)));
      } 
      
      
      
  }
?>
